﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using SisGrafeno;
using SisGrafenoController;

namespace SisGrafenoApp
{
    public partial class ClientesForm : Form
    {
        public ClientesForm()
        {
            InitializeComponent();
        }

        public void RefreshGrid()
        {
            dgvClientes.Rows.Clear();

            List<Cliente> list = MainController.getAllCliente();

            for (int i = 0; i < list.Count; i++)
            {
                dgvClientes.Rows.Add(new String[] {"" + list[i].getId(),
                                                   list[i].getDNI(),
                                                   list[i].getNombres(),
                                                   list[i].getApellidos(),
                                                   list[i].getTelef(),
                                                   list[i].getDireccion(),
                                                   list[i].getCategoria(),
                                                   list[i].getEmail()});
            }
        }

        private void ClientesForm_Load(object sender, EventArgs e)
        {
            // TODO: esta línea de código carga datos en la tabla 'inf282DataSet.BooxCliente' Puede moverla o quitarla según sea necesario.
            this.booxClienteTableAdapter.Fill(this.inf282DataSet.BooxCliente);
            RefreshGrid();
        }
        private void dgvClientes_Click(object sender, EventArgs e)
        {
            int selRow = dgvClientes.SelectedRows[0].Index;
            int custId = Int32.Parse(dgvClientes.Rows[selRow].Cells[0].Value.ToString());
            Cliente c = MainController.getCustomerById(custId);

            txtCodigo.Text = "" + c.getId();
            txtDNI.Text = c.getDNI();
            txtNombres.Text = c.getNombres();
            txtApellidos.Text = c.getApellidos();
            txtCategoria.Text = c.getCategoria();
            txtDireccion.Text = c.getDireccion();
            txtEmail.Text = c.getEmail();
            txtTelefono.Text = c.getTelef();
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            Cliente c = new Cliente();

            c.setId(Int32.Parse(txtCodigo.Text));
            c.setDNI(txtDNI.Text);
            c.setNombres(txtNombres.Text);
            c.setApellidos(txtApellidos.Text);
            c.setCategoria(txtCategoria.Text);
            c.setDireccion(txtDireccion.Text);
            c.setTelef(txtTelefono.Text);
            c.setEmail(txtEmail.Text);

            MainController.addCliente(c);
            RefreshGrid();
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            int selRow = dgvClientes.SelectedRows[0].Index;
            int custId = Int32.Parse(dgvClientes.Rows[selRow].Cells[0].Value.ToString());

            MainController.deleteCustomer(custId);

            RefreshGrid();
        }

        private void btnReset_Click(object sender, EventArgs e)
        {
            txtCodigo.Text = "";
            txtDNI.Text = "";
            txtNombres.Text = "";
            txtApellidos.Text = "";
            txtCategoria.Text = "";
            txtDireccion.Text = "";
            txtEmail.Text = "";
            txtTelefono.Text = "";
        }
    }
}
